/*
 * XJSysHelper.h
 *
 *  Created on: 2015年9月24日
 *      Author: Administrator
 */

#ifndef SRC_XJSYSHELPER_H_
#define SRC_XJSYSHELPER_H_

#include "XJEnv.h"

#ifdef _WIN32
#include <Windows.h>
#else
#include <pthread.h>
#endif

#ifndef ASSERT
#include <assert.h>
#define ASSERT(p) assert(p)
#endif

#include <unistd.h>
#include <time.h>

namespace XJUtilClass {
// 获取线程号
unsigned long GetCurrentThreadId();
// 获取 CPU 核数
unsigned long SysGetNumberOfProcessors();
// 获取页面大小
unsigned long SysGetPageSize();
// 获取系统启动时间(毫秒)
unsigned long TimeGetTime();
/**********************************
描述: 获取当前时间与原始时间的时间差
参数:
		dwOriginal	: 原始时间（毫秒），通常用 timeGetTime() 或 GetTickCount() 获取

返回值:	与当前 timeGetTime() 之间的时间差
**********************************/
unsigned long GetTimeGap32(unsigned long dwOriginal);
#ifdef _WIN32
// 获取系统信息
void SysGetSystemInfo(LPSYSTEM_INFO pInfo);

#if _MSC_VER < 1800

// 获取操作系统版本
bool SysGetOSVersionInfo(LPOSVERSIONINFO pInfo, bool bInfoEx = false);
// 获取操作系统版本（高位双字节：主版本号；低位双字节：副版本号）
unsigned long SysGetOSVersion();
#endif

#endif

} /* namespace XJUtilClass */

#endif /* SRC_XJSYSHELPER_H_ */
